#include <stdio.h>

// int main()
// {
//     int a = 10;
//     int b = 20;
//     printf("a = %d\n", a);
//     printf("b = %d\n", b);

//     // 把a和b 的值交换
//     int temp = a;
//     a = b;
//     b = temp;

//     printf("a = %d\n", a);
//     printf("b = %d\n", b);

//     return 0;
// }

void swap(int x, int y)
{
    printf("swap before x = %d\n", x);
    printf("swap before y = %d\n", y);

    int temp = x;
    x = y;
    y = temp;

    printf("swap after x = %d\n", x);
    printf("swap after y = %d\n", y);
    //  x y 值传递  只在swap 函数内部生效   函数运行完成之后 栈帧被销毁 xy 值被销毁
}
int main()
{
    int a = 10;
    int b = 20;
    printf("a = %d\n", a);
    printf("b = %d\n", b);

    swap(a, b);
    // a b 只是值传递   swap里面交换的值 只是swap内部的变量 跟main函数的a b 没有关系

    printf("a = %d\n", a);
    printf("b = %d\n", b);
    // 为什么a和b没有改变？

    return 0;
}